Computing clusters often host nodes having instances of virtual machines that request and receive resources from a hypervisor. In some situations, such virtual machines can know a priori the extent of resources (e.g., memory) that are needed to carry out the intended function of the virtual machine. In other cases, however a virtual machine might not know a priori the extent of memory resources needed to provide the intended function and/or to perform at a particular level of performance. For example, a virtual machine that provides services (e.g., shared storage access) to a group of user virtual machines might need a small amount of memory resources (e.g., to implement a small caching subsystem) or might need a large amount of memory (e.g., to implement a large caching subsystem). Techniques that perform an a priori allocation of a very large segment of memory in order to handle very large memory needs (e.g., very large caches) are deficient at least in that the large memory allocation depletes memory resources from other virtual machines that might advantageously avail themselves of the memory resources. Techniques that perform an a priori allocation of too small of a memory segment is deficient at least in that the intended function ceases or performance suffers when the too-small of a segment of allocated memory becomes fully consumed during operation.
In some computing clusters, a hypervisor can loan out portions of memory to a requesting virtual machine under the proviso that the loaned out memory will be returned by the requesting virtual machine immediately upon demand by the hypervisor. Such a loan-out agreement between a hypervisor and a requesting virtual machine can serve to improve memory resource utilization, however the requirements that the loaned out memory will be returned by the requesting virtual machine immediately upon demand by the hypervisor are often too onerous for many applications, at least inasmuch as nearly instantaneous reconfiguration of memory uses upon return of the loaned out memory to the hypervisor presents a severe constraint to efficient use of the overall memory resources.
What is needed is a technique or techniques for on-demand spontaneous reconfiguration of virtual machine memory subsystems that advance over legacy approaches to overcome the deficiencies of legacy techniques.